Multimedia content navigation and playback

ABSTRACT

In accordance with the present invention, a filtering process is based on the output side of a multimedia decoder. A navigator monitors the current play position of the multimedia content and compares that position with navigation objects. Each navigation object defines a start position, a stop position, and an filtering action to perform on the portion of the multimedia content that begins at the start position and ends at the stop position. When the current play position falls within the portion of multimedia content defined by a particular navigation object, the navigator activates the filtering action that was assigned to the navigation object. Filtering actions include skipping, muting, reframing, etc., the portion of multimedia content defined by a navigation object. A variety of systems may be used to implement the present invention, such as computer systems (consumer and server), television systems, and audio systems.

CROSS-REFERENCE TO RELATED APPLICATIONS

This application is a continuation patent application of U.S. patentapplication Ser. No. 11/074,908, filed Mar. 7, 2005 and entitled“Multimedia Content Navigation and Playback,” which is a continuationpatent application of U.S. patent application Ser. No. 09/694,873, filedOct. 23, 2000 and entitled “Multimedia Content Navigation and Playback,”the disclosures of which are hereby incorporated by reference herein intheir entireties.

BACKGROUND OF THE INVENTION

1. The Field of the Invention

The present invention relates to filtering multimedia content. Morespecifically, the present invention relates to methods, systems, andcomputer program products for automatically identifying and filteringportions of multimedia content during the decoding process.

2. The Prior State of the Art

Often, movies and other multimedia content contain scenes or languagethat are unsuitable for viewers of some ages. To help consumersdetermine whether a particular movie is appropriate for an audience of agiven age, the Motion Picture Association of America (“MPAA”) hasdeveloped the now familiar NC-17/R/PG-13/PG/G rating system. Otherorganizations have developed similar rating systems for other types ofmultimedia content, such as television programming, computer software,video games, and music.

Both the quantity and context of potentially objectionable material aresignificant factors in assigning multimedia content a rating. However, arelatively small amount of mature-focused subject matter may besufficient to remove multimedia content from a rating categoryrecommended for younger children. For example, in a motion picturesetting, a single scene of particularly explicit violence, sexuality, orlanguage may require an “R” rating for what would otherwise be a “PG” or“PG-13” movie. As a result, even if an “R” rated motion picture has ageneral public appeal, individuals trying to avoid “R” rated content,and teenagers restricted by the “R” rating, may choose not to view amotion picture that they would otherwise desire to view if it were notfor the inclusion of the explicit scene.

Many consumers may prefer an alternate version of the multimediacontent, such as a version that has been modified to make the contentmore suitable for all ages. To provide modified versions of multimediaworks, the prior art has focused on manipulating the multimedia source.The details of how multimedia content is modified depends largely on thetype of access the source media supports. For linear access media, suchas videotape or audiotape, undesired content is edited from the tape andthe remaining ends are spliced back together. The process is repeatedfor each portion of undesired content the multimedia source contains.Due to the need for specialized tools and expertise, it is impracticalfor individual consumers to perform this type of editing. While thirdparties could perform this editing to modify content on a consumer'sbehalf, the process is highly inefficient because it requires physicallyhandling and repeating the editing for each individual tape.

Modifying direct access media, such as DVD, also has focused onmodifying the multimedia source. Unlike linear media, direct accessmedia allows for accessing any arbitrary portion of the multimediacontent in roughly the same amount of time as any other arbitraryportion of the multimedia content. Direct access media allows for thecreation and distribution of multiple versions of multimedia content,including versions that may be suitable to most ages, and storing theversions on a single medium. The decoding process creates variouscontinuous multimedia streams by identifying, selecting, retrieving andtransmitting content segments from a number of available segments storedon the content source.

To help in explaining the prior art for creating multiple versions of amultimedia work on a single source, a high-level description of thebasic components found in a system for presenting multimedia content maybe useful. Typically, such systems include a multimedia source, adecoder, and an output device. The decoder is a translator between theformat used to store or transmit the multimedia content and the formatused for intermediate processing and ultimately presenting themultimedia content at the output device. For example, multimedia contentmay be encrypted to prevent piracy and compressed to conserve storagespace or bandwidth. Prior to presentation, the multimedia content mustbe decrypted and/or uncompressed, operations usually performed by thedecoder.

The prior art teaches creation and distribution of multiple versions ofa direct access multimedia work on a single storage medium by breakingthe multimedia content into various segments and including alternateinterchangeable segments where appropriate. Each individually accessiblesegment is rated and labeled based on the content it contains,considering such factors as subject matter, context, and explicitness.One or more indexes of the segments are created for presenting each ofthe multiple versions of the multimedia content. For example, one indexmay reference segments that would be considered a “PG” version of themultimedia whereas another index may reference segments that would beconsidered an “R” version of the content. Alternatively, the segmentsthemselves or a single index may include a rating that is compared to arating selected by a user.

There are a variety of benefits to the prior art's indexing ofinterchangeable segments to provide for multiple versions of amultimedia work on a single storage medium. Use of storage space can beoptimized because segments common to the multiple versions need only bestored once. Consumers may be given the option of setting their ownlevel of tolerance for specific subject matter and the differentmultimedia versions may contain alternate segments with varying levelsof explicitness. The inclusion of segment indexing on the content sourcealso enables the seamless playback of selected segments (i.e., withoutgaps and pauses) when used in conjunction with a buffer. Seamlessplayback is achieved by providing the segment index on the contentsource, thus governing the selection and ordering of the interchangeablesegments prior to the data entering the buffer.

The use of a buffer compensates for latency that may be experienced inreading from different physical areas of direct access media. While readmechanisms are moved from one disc location to another, no reading ofthe requested content from the direct access media occurs. This is aproblem because, as a general rule, the playback rate for multimediacontent exceeds the access rate by a fairly significant margin. Forexample, a playback rate of 30 frames per second is common formultimedia content. Therefore, a random access must take less than1/30th of a second (approximately 33 milliseconds) or the random accesswill result in a pause during playback while the reading mechanism movesto the next start point. A typical 16x DVD drive for a personalcomputer, however, has an average access rate of approximately 95milliseconds, nearly three times the 33 milliseconds allowed forseamless playback. Moreover, according to a standard of the NationalTelevision Standards Committee (“NTSC”), only 5 to 6 milliseconds areallowed between painting the last pixel of one frame and painting thefirst pixel of the next frame. Those of skill in the art will recognizethat the above calculations are exemplary of the time constraintsinvolved in reading multimedia content from direct access media foroutput to a PC or television, even though no time is allotted todecoding the multimedia content after it has been read, time that wouldneed to be added to the access time for more precise latencycalculations.

Once access occurs, DVD drives are capable of reading multimedia contentfrom a DVD at a rate that exceeds the playback rate. To address accesslatency, the DVD specification teaches reading multimedia content into atrack buffer. The track buffer size and amount of multimedia contentthat must be read into the track buffer depend on several factors,including the factors described above, such as access time, decodingtime, playback rate, etc. When stored on a DVD, a segment index, astaught in the prior art, with corresponding navigation commands,identifies and orders the content segments to be read into the trackbuffer, enabling seamless playback of multiple version of the multimediacontent. However, segment indexes that are external to the contentsource are unable to completely control the navigation commands withinthe initial segment identification/selection/retrieval process sinceexternal indexes can interact with position codes only available at theend of the decoding process. As a result, external segment indexes maybe unable to use the DVD track buffer in addressing access latency astaught in the prior art.

As an alternative to buffering, segments from separate versions ofmultimedia content may be interlaced. This allows for essentiallysequential reading of the media, with unwanted segments being read anddiscarded or skipped. The skips, however, represent relatively smallmovements of the read mechanism. Generally, small movements involve amuch shorter access time than large movements and therefore introduceonly minimal latency.

Nevertheless, the prior art for including multiple versions of amultimedia work on a single direct access media suffers from severalpractical limitations that prevent it from wide-spread use. Onesignificant problem is that content producers must be willing to createand broadly distribute multiple versions of the multimedia work andaccommodate any additional production efforts in organizing and labelingthe content segments, including interchangeable segments, for use withthe segment indexes or maps. The indexes, in combination with thecorresponding segments, define a work and are stored directly on thesource media at the time the media is produced. In short, while theprior art offers a tool for authoring multiple versions of a multimediawork, that tool is not useful in and of itself to consumers.

A further problem in the prior art is that existing encodingtechnologies must be licensed in order to integrate segment indexes on adirect access storage medium and decoding technologies must be licensedto create a decoder that uses the segment indexes on a multimedia workto seamlessly playback multiple versions stored on the direct accessmedium. In the case of DVD, the Motion Pictures Entertainment Group(“MPEG”) controls the compression technology for encoding and decodingmultimedia files. Furthermore, because producers of multimedia contentgenerally want to prevent unauthorized copies of their multimedia work,they also employ copy protection technologies. The most common copyprotection technologies for DVD media are controlled by the DVD CopyControl Association (“DVD CCA”), which controls the licensing of theirContent Scramble System technology (“CSS”). Decoder developers licensethe relevant MPEG and CSS technology under fairly strict agreements thatdictate how the technology may be used. In short, the time and costassociated with licensing existing compression and copy protectiontechnologies or developing proprietary compression and copy protectiontechnologies may be significant costs, prohibitive to the wide-spreaduse of the prior art's segment indexing for providing multiple versionsof a multimedia work on a single direct access storage medium.

Additionally, the teachings of the prior art do not provide a solutionfor filtering direct access multimedia content that has already beenduplicated and distributed without regard to presenting the content in amanner that is more suitable for most ages. At the time of filing thispatent application, over 5000 multimedia titles have been released onDVD without using the multiple version technology of the prior art toprovide customers the ability to view and hear alternate versions of thecontent in a manner that is more suitable for most ages.

The prior art also has taught that audio portions of multimedia contentmay be identified and filtered during the decoding process by examiningthe closed caption information for the audio stream and muting thevolume during segments of the stream that contain words matching with apredetermined set of words that are considered unsuitable for most ages.This art is limited in its application since it cannot identify andfilter video segments and since it can only function with audio streamsthat contain closed captioning information. Furthermore, filtering audiocontent based on closed captioning information is imprecise due to poorsynchronization between closed captioning information and thecorresponding audio content.

SUMMARY OF THE INVENTION

These and other problems with the prior art are overcome by the presentinvention, which is directed toward automatically identifying andfiltering portions of multimedia content during the decoding process. Astaught in the prior state of the art, the technology for presentingoriginal multimedia content that is suitable for most ages has beenconcentrated on altering the multimedia at its source. Unlike the priorart's control of the input or source side of a decoder, the presentinvention permits filtering multimedia content at the output side of adecoder. As a result, the present invention may be practiced withoutnecessarily imposing any particular requirements on the source of themultimedia content.

The present invention includes the creation of navigation objects todefine portions of the multimedia content that should be filtered. Eachnavigation object contains a start position, a stop position, and afiltering action to be performed on the portion of the multimediacontent that is defined by the start position and stop position. Thenavigation objects are placed in an object store. There is no particularlimitation on the format of the navigation objects and the object store.For example, the object store may be a file, such as a database and thenavigation objects may be records within the database.

Navigator software reads navigation objects from the object store andmonitors the decoder for the current position code of the multimedia asthe multimedia content is being decoded. For DVD multimedia, theposition code may be a time code that identifies portions of themultimedia content by hours, minutes, seconds, and frame number. Theposition code is compared against the start and stop positions definedin each navigation object. When playback reaches a portion of themultimedia defined by a particular navigation object, the navigatoractivates the editing action assigned to that navigation object.

For example, one type of filtering action is a skip. When the navigatordetermines that the time code for the multimedia content currently beingdecoded has reached the start position of a navigation object with askip filtering action, the navigator instructs the decoder todiscontinue decoding at the current multimedia position and to resumedecoding at the stop position of the navigation object. By discontinuingthe decoding process at the start position of the navigation object andresuming the decoding process at the stop position of the navigationobject, the portion of the multimedia content defined by the start andstop positions of the multimedia content is never decoded and as aresult is never transferred to a multimedia output device, such as avideo display. In some cases, the navigator may not begin accessing thestop position to resume the decoding process until after determiningthat the start position for discontinuing decoding has been accessed,preventing the Navigator from using a read buffer to compensate for theaccess time required in moving the read mechanism from the startposition to the stop position where decoding will resume.

Mute is another type of filtering action. When the navigator determinesthat the time code for the multimedia content currently being decodedhas reached the start position of a navigation object with a mutefiltering action, the navigator suppresses the audio decoding.Suppressing audio decoding may be accomplished by setting the volume ofthe multimedia content to be inaudible. Muting continues until thenavigator determines that the time code for the multimedia content thenbeing decoded reaches the stop position defined in the navigationobject. Once the stop position has been reached, the volume is returnedthe level in effect prior to the navigator activating the mute filteringaction. Unlike the skip action, the muted portion of the multimediacontent is decoded and may be transferred to an output device such asspeaker, but with the volume set to be inaudible or with the audiodecoding suppressed in some other way, the muted portion is effectivelyfiltered from the multimedia content.

A further type of filtering action is a reframe. In cases where thevisual information presented to the viewer only contains unsuitablematerial in a certain physical area of a scene, the multimedia contentcan be enlarged if needed and then positioned in the viewing frame in amanner that effectively crops the objectionable information from view.The sizing and framing can be adjusted during the reframe action tocontinually crop the objectionable material from view. When thenavigator determines that the position code for the multimedia contentcurrently being decoded has reached the end position of a reframenavigation object, the navigator instructs the current multimedia toresume to the original framing. For example, if the multimedia includesa head to toe shot of a person with a bloody leg wound, the content canbe resized and reframed to show only a head to waist shot.

Depending on the multimedia content, some editing actions may producemore noticeable discontinuities, irregularities, or artifacts thanothers. To reduce a user's perception of potential artifacts,incremental editing actions or editing actions with an incrementalcomponent provide for gradual transitions before and/or after an editingaction. For example, the display of video content may fade from normalto blank prior to a skip editing action and, after the editing action,from blank back to normal. Similarly, muting actions may fade audiovolume in and out to insure smooth transitions for editing actions. Asused in this application, editing actions should be interpreted broadlyto encompass all types of actions that may be useful in editingmultimedia content, including incremental editing actions that areeither separate from or combined with other editing actions.

Depending on the multimedia content, some filtering actions may producemore noticeable discontinuities, irregularities, or artifacts thanothers. To reduce a user's perception of potential artifacts,incremental filtering actions or filtering actions with an incrementalcomponent provide for gradual transitions before and/or after afiltering action. For example, the display of video content may fadefrom normal to blank prior to a skip filtering action and, after thefiltering action, from blank back to normal. Similarly, muting actionsmay fade audio volume in and out to insure smooth transitions forfiltering actions. As used in this application, filtering actions shouldbe interpreted broadly to encompass all types of actions that may beuseful in filtering multimedia content, including incremental filteringactions that are either separate from or combined with other filteringactions.

The present invention may be practiced in a variety of computerizedsystems, including servers, personal computers, television systems, andaudio systems. A typical system for a personal computer includes a DVDdrive with decoding hardware and/or software, navigator software withnavigation objects for a particular DVD title, a computer display forvideo output, and speakers for audio output. For television systems witha conventional DVD player and television set, the navigator software andnavigation objects may be stored in a remote control device thatcommunicates with the DVD player and television set over a traditionalinfrared channel. Alternatively, the television system may include a DVDplayer that includes the navigator software and navigation object store.

Additional features and advantages of the invention will be set forth inthe description which follows, and in part will be obvious from thedescription, or may be learned by the practice of the invention. Thefeatures and advantages of the invention may be realized and obtained bymeans of the instruments and combinations particularly pointed out inthe appended claims. These and other features of the present inventionwill become more fully apparent from the following description andappended claims, or may be learned by the practice of the invention asset forth hereinafter.

BRIEF DESCRIPTION OF THE DRAWINGS

In order to describe the manner in which the above-recited and otheradvantages and features of the invention can be obtained, a moreparticular description of the invention briefly described above will berendered by reference to specific embodiments thereof which areillustrated in the appended drawings. Understanding that these drawingsdepict only typical embodiments of the invention and are not thereforeto be considered to be limiting of its scope, the invention will bedescribed and explained with additional specificity and detail throughthe use of the accompanying drawings in which:

FIG. 1 illustrates an exemplary system that provides a suitableoperating environment for the present invention;

FIG. 2 is high-level block diagram showing the basic components of asystem embodying the present invention;

FIGS. 3A, 3B, and 3C, are block diagrams of three systems that providegreater detail for the basic components shown in FIG. 2;

FIGS. 4A, 5A, and 7, are flowcharts depicting exemplary methods forediting multimedia content according to the present invention;

FIGS. 4B and 5B illustrate navigation objects in relation to mocked-upposition codes for multimedia content; and

FIG. 6 is a flowchart portraying a method used in customizing theediting of multimedia content.

DETAILED DESCRIPTION OF EMBODIMENTS OF THE INVENTION

The present invention extends to methods, systems, and computer programproducts for automatically identifying and filtering portions ofmultimedia content during the decoding process. The embodiments of thepresent invention may comprise a special purpose or general purposecomputer including various computer hardware, a television system, anaudio system, and/or combinations of the foregoing. These embodimentsare discussed in greater detail below. However, in all cases, thedescribed embodiments should be viewed a exemplary of the presentinvention rather than as limiting it's scope.

Embodiments within the scope of the present invention also includecomputer-readable media for carrying or having computer-executableinstructions or data structures stored thereon. Such computer-readablemedia may be any available media that can be accessed by a generalpurpose or special purpose computer. By way of example, and notlimitation, such computer-readable media can comprise RAM, ROM, EEPROM,CD-ROM or other optical disk storage, magnetic disk storage or othermagnetic storage devices, or any other medium which can be used to carryor store desired program code means in the form of computer-executableinstructions or data structures and which can be accessed by a generalpurpose or special purpose computer. When information is transferred orprovided over a network or another communications link or connection(either hardwired, wireless, or a combination of hardwired or wireless)to a computer, the computer properly views the connection as acomputer-readable medium. Thus, any such a connection is properly termeda computer-readable medium. Combinations of the above should also beincluded within the scope of computer-readable media.Computer-executable instructions comprise, for example, instructions anddata which cause a general purpose computer, special purpose computer,or special purpose processing device to perform a certain function orgroup of functions.

FIG. 1 and the following discussion are intended to provide a brief,general description of a suitable computing environment in which theinvention may be implemented. Although not required, the invention willbe described in the general context of computer-executable instructions,such as program modules, being executed by computers in networkenvironments. Generally, program modules include routines, programs,objects, components, data structures, etc. that perform particular tasksor implement particular abstract data types. Computer-executableinstructions, associated data structures, and program modules representexamples of the program code means for executing steps of the methodsdisclosed herein. The particular sequence of such executableinstructions or associated data structures represent examples ofcorresponding acts for implementing the functions described in suchsteps. Furthermore, program code means being executed by a processingunit provides one example of a processor means.

Those skilled in the art will appreciate that the invention may bepracticed in network computing environments with many types of computersystem configurations, including personal computers, hand-held devices,multi-processor systems, microprocessor-based or programmable consumerelectronics, network PCs, minicomputers, mainframe computers, and thelike. The invention may also be practiced in distributed computingenvironments where tasks are performed by local and remote processingdevices that are linked (either by hardwired links, wireless links, orby a combination of hardwired or wireless links) through acommunications network. In a distributed computing environment, programmodules may be located in both local and remote memory storage devices.

With reference to FIG. 1, an exemplary system for implementing theinvention includes a general purpose computing device in the form of aconventional computer 120, including a processing unit 121, a systemmemory 122, and a system bus 123 that couples various system componentsincluding the system memory 122 to the processing unit 121. The systembus 123 may be any of several types of bus structures including a memorybus or memory controller, a peripheral bus, and a local bus using any ofa variety of bus architectures. The system memory includes read onlymemory (ROM) 124 and random access memory (RAM) 125. A basicinput/output system (BIOS) 126, containing the basic routines that helptransfer information between elements within the computer 120, such asduring start-up, may be stored in ROM 124.

The computer 120 may also include a magnetic hard disk drive 127 forreading from and writing to a magnetic hard disk 139, a magnetic diskdrive 128 for reading from or writing to a removable magnetic disk 129,and an optical disk drive 130 for reading from or writing to removableoptical disk 131 such as a CD-ROM or other optical media. The magnetichard disk drive 127, magnetic disk drive 128, and optical disk drive 130are connected to the system bus 123 by a hard disk drive interface 132,a magnetic disk drive-interface 133, and an optical drive interface 134,respectively. The drives and their associated computer-readable mediaprovide nonvolatile storage of computer-executable instructions, datastructures, program modules and other data for the computer 120.Although the exemplary environment described herein employs a magnetichard disk 139, a removable magnetic disk 129 and a removable opticaldisk 131, other types of computer readable media for storing data can beused, including magnetic cassettes, flash memory cards, digital videodisks, Bernoulli cartridges, RAMs, ROMs, and the like.

Program code means comprising one or more program modules may be storedon the hard disk 139, magnetic disk 129, optical disk 131, ROM 124 orRAM 125, including an operating system 135, one or more applicationprograms 136, other program modules 137, and program data 138. A usermay enter commands and information into the computer 120 throughkeyboard 140, pointing device 142, or other input devices (not shown),such as a microphone, joy stick, game pad, satellite dish, scanner, orthe like. These and other input devices are often connected to theprocessing unit 121 through a serial port interface 146 coupled tosystem bus 123. Alternatively, the input devices may be connected byother interfaces, such as a parallel port, a game port or a universalserial bus (USB). A monitor 147 or another display device is alsoconnected to system bus 123 via an interface, such as video adapter 148.In addition to the monitor, personal computers typically include otherperipheral output devices (not shown), such as speakers and printers.

The computer 120 may operate in a networked environment using logicalconnections to one or more remote computers, such as remote computers149 a and 149 b. Remote computers 49 a and 49 b may each be anotherpersonal computer, a server, a router, a network PC, a peer device orother common network node, and typically include many or all of theelements described above relative to the computer 120, although onlymemory storage devices 150 a and 150 b and their associated applicationprograms 136 a and 136 b have been illustrated in FIG. 1. The logicalconnections depicted in FIG. 1 include a local area network (LAN) 151and a wide area network (WAN) 152 that are presented here by way ofexample and not limitation. Such networking environments are commonplacein office-wide or enterprise-wide computer networks, intranets and theInternet.

When used in a LAN networking environment, the computer 120 is connectedto the local network 151 through a network interface or adapter 153.When used in a WAN networking environment, the computer 120 may includea modem 154, a wireless link, or other means for establishingcommunications over the wide area network 152, such as the Internet. Themodem 154, which may be internal or external, is connected to the systembus 123 via the serial port interface 146. In a networked environment,program modules depicted relative to the computer 120, or portionsthereof, may be stored in the remote memory storage device. It will beappreciated that the network connections shown are exemplary and othermeans of establishing communications over wide area network 152 may beused.

Turning next to FIG. 2, a high-level block diagram identifying the basiccomponents of a system for filtering multimedia content are shown. Thebasic components include content source 230, decoders 250, navigator210, and output device 270. Content source 230 provides multimedia todecoder 250 for decoding, navigator 210 controls decoder 250 so thatfiltered content does not reach output device 270, and output device 270plays the multimedia content it receives. As used in this application,the term “multimedia” should be interpreted broadly to include audiocontent, video content, or both.

The present invention does not require a particular content source 230.Any data source that is capable of providing multimedia content, such asa DVD, a CD, a memory, a hard disk, a removable disk, a tape cartridge,and virtually all other types of magnetic or optical media may operateas content source 230. Those of skill in the art will recognize that theabove media includes read-only, read/write, and write-once varieties,whether stored in an analog or digital format. All necessary hardwareand software for accessing these media types are also part of contentsource 230. Content source 230 as described above provides an example ofmultimedia source means.

Multimedia source 230 generally provides encoded content. Encodingrepresents a difference in the formats that are typically used forstoring or transmitting multimedia content and the formats used forintermediate processing of the multimedia content. Decoders 250translate between the storage and intermediate formats. For example,stored MPEG content is both compressed and encrypted. Prior to beingplayed at an output device, the stored MPEG content is decrypted anduncompressed by decoders 250. Decoders 250 may comprise hardware,software, or some combination of hardware and software. Due to the largeamount of data involved in playing multimedia content, decoders 250frequently have some mechanism for transferring data directly to outputdevice 270. Decoders 250 are an exemplary embodiment of decoder means.

Output device 270 provides an example of output means for playingmultimedia content and should be interpreted to include any device thatis capable of playing multimedia content so that the content may beperceived. For a computer system, like the one described with referenceto FIG. 1, output device 270 may include a video card, a video display,an audio card, and speakers. Alternatively, output device 270 may be atelevision or audio system. Television systems and audio systems cover awide range of equipment. A simple audio system may comprise little morethan an amplifier and speakers. Likewise, a simple television system maybe a conventional television that includes one or more speakers and atelevision screen. More sophisticated television and audio systems mayinclude audio and video receivers that perform sophisticated processingof audio and video content to improve sound and picture quality.

Output device 270 may comprise combinations of computer, television, andaudio systems. For example, home theaters represent a combination audioand television systems. These systems typically include multiple contentsources, such as components for videotape, audiotape, DVD, CD, cable andsatellite connections, etc. Audio and/or television systems also may becombined with computer systems. Therefore, output device 270 should beconstrued as including the foregoing audio, television, and computersystems operating either individually, or in some combination.Furthermore, when used in this application, computer system (whether fora consumer or operating as a server), television system, and audiosystem may identify a system's capabilities rather than its primary orordinary use. These capabilities are not necessarily exclusive of oneanother. For example, a television playing music through its speakers isproperly considered an audio system because it is capable of operatingas an audio system. That the television ordinarily operates as part of atelevision system does not preclude it from operating as an audiosystem. As a result, terms like consumer system, server system,television system, and audio system, should be given their broadestpossible interpretation to include any system capable of operating inthe identified capacity.

Navigator 210 is software and/or hardware that control the decoders 250by determining if the content being decoded needs to be filtered.Navigator 210 is one example of multimedia navigation means. It shouldbe emphasized that content source 230, decoders 250, output device 270,and navigator 210 have been drawn separately only to aid in theirdescription. Some embodiments may combine content source 230, decoders250, and navigator 210 into a single set-top box for use with atelevision and/or audio system. Similarly, a computer system may combineportions of decoder 250 with output device 270 and portions of decoder250 with content source 230. Many other embodiments are possible, andtherefore, the present invention imposes no requirement that these fourcomponents must exist separately from each other. As such, thecorresponding multimedia source means, decoder means, output means, andmultimedia navigation means also need not exist separately from eachother and may be combined together as is appropriate for a givenembodiment of the present invention. It is also possible for contentsource 230, decoders 250, output device 270, and/or navigator 210 to belocated remotely from each other and linked together with acommunication link.

As noted previously, FIGS. 3A, 3B, and 3C, are block diagrams of threeexemplary systems that provide greater detail for the basic componentsshown in FIG. 2. However, the present invention is not limited to anyparticular physical organization of the components shown in FIG. 2.Those of skill in the art will recognize that these basic components aresubject to a wide-range of embodiments, including a single physicaldevice or several physical devices. Therefore, FIG. 2 and all otherfigures should be viewed as exemplary of embodiments according to thepresent invention, rather than as restrictions on the presentinvention's scope.

Similar to FIG. 2, FIG. 3A includes navigator 310 a, content source 330a, audio and video decoders 350 a, and output device 370 a, all locatedat consumer system 380 a. Content source 330 a includes DVD 332 a andDVD drive 334 a. The bi-directional arrow between content source 330 aand audio and video decoders 350 a indicates that content source 330provides multimedia content to audio and video decoders 350 a and thataudio and video decoders 350 a send commands to content source 330 awhen performing filtering operations.

Navigator 310 a monitors decoders 350 a by continuously updating thetime code of the multimedia content being decoded. (Time codes are anexample of positions used in identifying portions of multimedia content.In the case of time codes, positioning is based on an elapsed playingtime from the start of the content. For other applications, positionsmay relate to physical quantities, such as the length of tape movingfrom one spool to another in a videotape or audiotape. The presentinvention does not necessarily require any particular type ofpositioning for identifying portions of multimedia content.) In oneembodiment, the time code updates occur every 1/10th of a second, butthe present invention does not require any particular update interval.(The description of FIGS. 4B and 5B provides some insight regardingfactors that should be considered in selecting an appropriate updateinterval.)

Communication between Navigator 310 a and audio and video decoders 350 aoccurs through a vendor independent interface 352 a. The vendorindependent interface 352 a allows navigator 310 a to use the samecommands for a number of different content sources. Microsoft's ®DirectX ® is a set of application programming interfaces that provides avendor independent interface for content sources 330 a in computersystems running a variety of Microsoft operating systems. Audio andvideo decoders 350 a receive commands through vendor independentinterface 352 a and issue the proper commands for the specific contentsource 330 a.

Audio and video decoders 350 a provide audio content and video contentto output device 370 a. Output device 370 a includes graphics adapter374 a, video display 372 a, audio adaptor 376 a, and speakers 378 a.Video display 372 a may be any device capable of displaying videocontent, regardless of format, including a computer display device, atelevision screen, etc.

Usually, graphics adaptors and audio adaptors provide some decodingtechnology so that the amount of data moving between content source 330a and output device 370 a is minimized. Graphics adaptors and audioadaptors also provide additional processing for translating multimediacontent from the intermediate processing format to a format moresuitable for display and audio playback. For example, many graphicsadaptors offer video acceleration technology to enhance display speedsby offloading processing tasks from other system components. In the caseof graphics and audio adaptors, the actual transition between decoders350 a and output device 370 a may be a somewhat fuzzy. To the extentgraphics adaptor 374 a and audio adapter 376 a perform decoding,portions of those adaptors may be properly construed as part of decoders350 a.

Navigator 310 a includes navigation software 312 a and object store 316a. Bi-directional arrow 314 a indicates the flow of data betweennavigation software 312 a and object store 316 a. Object store 316 acontains a plurality of navigation objects 320 a. Within object store316 a, navigation objects may be stored as individual files that arespecific to particular multimedia content, they may be stored in one ormore common databases, or some other data management system may be used.The present invention does not impose any limitation on how navigationobjects are stored in object store 316 a.

Each navigation object 320 a defines when (start 321 a and stop 323 a)an filtering action (325 a) should occur for a particular system (329 a)and provides a description (327 a) of why the navigation object wascreated. Start and stop positions (321 a and 323 a) are stored as timecodes, in hours:minutes:seconds:frame format; actions may be either skipor mute (325 a); the description is a text field (327 a); andconfiguration is an identifier (329 a) used to determine if navigationobject 320 a applies to a particular consumer system 380 b. The valuesindicate that the start position 321 a is 00:30:10:15; stop position 323a is 00:30:15:00; the filtering action 325 a is skip; the description327 a is “scene of bloodshed” and the configuration 329 a is 2.1. Moredetail regarding navigation objects, such as navigation object 320 a,will be provided with reference to FIGS. 4B and 5B.

As navigator 310 a monitors audio and video decoders 350 a for the timecode of the multimedia content currently being decoded, the time code iscompared to the navigation objects in object store 316 a. When theposition code falls within the start and stop positions defined by anavigation object, navigator 310 a activates the filtering actionassigned to the navigation object. For navigation object 320 a, a timecode within the approximately four-second range of00:30:10:15-00:30:15:00 result in navigator 310 a issuing a command toaudio and video decoders 350 a to skip to the end of the range so thatthe multimedia content within the range is not decoded and is not givento output device 370 a. The process of filtering multimedia content willbe described in more detail with reference to FIGS. 4A, 5A, 6, and 7.

As in FIG. 3A, FIG. 3B includes a content source 330 b, audio and videodecoders 350 b, and output device 370 b. In FIG. 3B, however, objectstore 316 b is located at server system 390 b, and all other componentsare located at consumer system 380 b. As shown by start 321 b, stop 323b, action 325 b, description 327 b, and configuration 329 b, thecontents of navigation object 320 b remain unchanged.

Content source 330 b, including DVD drive 334 b and DVD 332 b, have beencombined with audio and video decoders 350 b, vendor independentinterface 352 b, and navigation software 312 b into a single device.Communication between navigation software 312 b and object store 316 boccurs over communication link 314 b. Communication link 314 b is anexample of communication means and should be interpreted to include anycommunication link for exchanging data between computerized systems. Theparticular communication protocols for implementing communication link314 b will vary from one embodiment to another. In FIG. 3B, at least aportion of communication link 314 b may include the Internet.

Output device 370 b includes a television 372 b with video input 374 band an audio receiver 377 b with an audio input 376 b. Audio receiver377 b is connected to speakers 378 b. As noted earlier, thesophistication and complexity of output device 370 b depends on theimplementation of a particular embodiment. As shown, output device 370 bis relatively simple, but a variety of components, such as video andaudio receivers, amplifiers, additional speakers, etc., may be addedwithout departing from the present invention. Furthermore, it is notnecessary that output device 370 b include both video and audiocomponents. If multimedia content includes only audio content, the videocomponents are not needed. Likewise, if the multimedia content includesonly video data, the audio components of output device 370 b may beeliminated.

Moving next to FIG. 3C, navigator 310 c, content source 330 c, audio andvideo decoders 350 c, and output device 370 c are all present. Like FIG.3B, FIG. 3C includes a server/remote system 390 c and a consumer system380 c. For the embodiment shown in FIG. 3C, navigator 310C is located atserver/remote system 390 c and content source 330 c, audio and videodecoders 350 c, and output device 370 c are located at the consumersystem 380 c.

Navigator 310 c includes server navigation software 312 c and objectstore 316 c, with data being exchanged as bi-directional arrow 314 cindicates. Start 321 c, stop 323 c, action 325 c, description 327 c, andconfiguration 329 c, show that the contents of navigation object 320 cremain unchanged from navigation objects 320 b and 320 a (FIGS. 3B and3A). Content source 330 c includes DVD drive 334 c and DVD 332 c, andoutput device 370 c includes graphics adaptor 374 c, video display 372c, audio adapter 376 c, and speakers 378 c. Because content source 330 cand output device 370 c are identical to the corresponding elements inFIG. 3A, their descriptions will not be repeated here.

In contrast to FIG. 3A, client navigator software 354 c had been addedto audio and video decoders 350 c and vendor independent interface 352c. Client navigator software 354 c supports communication betweennavigation software 312 c and vendor independent interface 352 c throughcommunication link 356 c. In some embodiments, no client navigatorsoftware 354 c will be necessary whereas in other embodiments, some typeof communication interface supporting communication link 356 c may benecessary. For example, suppose consumer system 380 c is a personalcomputer, server/remote system 390 c is a server computer, and at leasta portion of communication link 356 c includes the Internet. Clientnavigator software 354 c may be helpful in establishing communicationlink 356 c and in passing information between consumer system 380 c andserver/remote system 390 c.

Now, suppose content source 330 c and audio and video decoders 350 c arecombined as in a conventional DVD player. Server/remote system 390 c maybe embodied in a remote control unit that controls the operation of theDVD player over an infrared or other communication channel. Neitherclient navigator software 354 c nor vendor independent interface 352 cmay be needed for this case because server/remote system 390 c iscapable of direct communication with the DVD player and the DVD playerassumes responsibility for controlling audio and video decoders 350 c.

Several exemplary methods of operation for the present invention will bedescribed with reference to the flowcharts illustrated by FIGS. 4A, 5A,6, and 7, in connection with the mocked-up position codes and navigationobjects presented in FIGS. 4B and 5B. FIG. 4A shows a sample method forfiltering multimedia content according to the present invention.Although FIGS. 4A, 5A, 6, and 7 show the method as a sequence of events,the present invention is not necessarily limited to any particularordering. Because the methods may be practiced in both consumer andserver systems, parentheses have been used to identify information thatis usually specific to a server.

Beginning with a consumer system, such as the one shown in FIG. 3A, anobject store may be part of a larger data storage. For example, aseparate object store may exist for multimedia content stored onindividual DVD titles. Because many object stores have been created, atblock 412 the multimedia content title is retrieved from the contentsource. Alternatively, a single object store may contain navigationobjects corresponding to more than one DVD title. At block 414, with thetitle identifier, the object store and corresponding navigation objectsthat are specific to a particular DVD title are selected. (Receive fee,block 416, will be described later, with reference to a server system.)At block 422, the first navigation object for the DVD title identifiedat 412 is retrieved.

Turning briefly to FIG. 4B, a navigation object is shown in the contextof multimedia content. Content positions 480 identify various positions,labeled P4₁, P4₂, P4₃, P4₄, P4₅, P4₆, and P4₇, that are associated withthe multimedia content. The navigation object portion 490 of the contentbegins at start 491 (P4₂) and ends at stop 493 (P4₆). Skip 495 is thefiltering action assigned to the navigation object and scene ofbloodshed 497 is a text description of the navigation object portion 490of the multimedia content. Configuration 499 identifies the hardware andsoftware configuration of a consumer system to which the navigationobject applies. For example, configuration 499 may include the make,model, and software revisions for the consumer's computer, DVD drive,graphics card, sound card, and may further identify the DVD decoder andthe consumer computer's motherboard.

The motivation behind configuration 499 is that different consumersystems may introduce variations in how navigation objects areprocessed. As those variations are identified, navigation objects may becustomized for a particular consumer system without impacting otherconsumer systems. The configuration identifier may be generatedaccording to any scheme for tracking versions of objects. In FIG. 4B,the configuration identifier includes a major and minor revision,separated by a period.

Returning now to FIG. 4A, a navigation object as described above hasbeen retrieved at block 422. Decision block 424 determines whether theconfiguration identifier of the navigation object matches theconfiguration of the consumer system. Matching does not necessarilyrequire exact equality between the configuration identifier and theconsumer system. For example, if major and minor revisions are used, amatch may only require equality of the major revision. Alternatively,the configuration identifier of a navigation object may match allconsumer configurations. Configuration identifiers potentially mayinclude expressions with wildcard characters for matching one or morecharacters, numeric operators for determining the matching conditions,and the like. If no match occurs, returning to block 422 retrieves thenext navigation object.

Retrieving a content identifier (412), selecting navigation objects(414), retrieving a navigation object (422), and determining whether theconfiguration identifier matches the consumer system configuration (424)have been enclosed within a dashed line to indicate that they are allexamples of acts that may occur within a step for providing an objectstore having navigation objects.

With a navigation object identified, the decoders begin decoding themultimedia content (432) received from the DVD. Once decoded, thecontent is transferred (434) to the output device where in can be playedfor a consumer. While decoding the multimedia content, the position codeis updated continuously (436). The acts of decoding (432), transferring(434), and continuously updating the position code (436) have beenenclosed in a dashed line to indicate that they are examples of actsthat are included within a step for using a decoder to determine whenmultimedia content is within a navigation object (430).

A step for filtering multimedia content (440) includes the acts ofcomparing the updated position code to the navigation object identifiedin block 422 to determine if the updated position code lies within thenavigation object and the act of activating an filtering action (444)when appropriate. If the updated position code is not within thenavigation object, decoding continues at block 432. But if the updatedposition code is within the navigation object, the filtering action isactivated (444). Following activation of the filtering action, the nextnavigation object is retrieved at block 422.

Using the navigation object illustrated in FIG. 4B, the method of FIG.4A will be described in greater detail. The navigation object isretrieved in block 422 and passes the configuration match test of block424. After the multimedia content is decoded at block 432 andtransferred to the output device at block 434, the position code isupdated at block 436. P4₁ corresponds to the updated position code.Because P4₁ is not within the start and stop positions (491 and 493),more multimedia content is decoded (432), transferred to the outputdevice (434), and the position code is updated again (436).

The updated position code is now P4₂. P4₂ also marks the beginning ofthe navigation object portion 490 of the multimedia content defined bythe start and stop positions (491 and 493) of the navigation object. Thevideo filtering action, skip 495 is activated in block 444. Activatingthe video filtering action sends a command to the decoder to discontinuedecoding immediately and resume decoding at stop position 493. Thecontent shown between P4₂ and P4₆ is skipped. Following the skip, thenext navigation object is retrieved at block 422 and the acts describeabove are repeated.

Abruptly discontinuing and resuming the decoding may lead to noticeableartifacts that detract from the experience intended by the multimediacontent. To diminish the potential for artifacts, filtering actions maybe incrementally activated or separate incremental filtering action maybe used. For example, a fade out (e.g., normal to blank display)filtering action may precede a skip filtering action and a fade in(e.g., blank to normal display) filtering action may follow a skipfiltering action. Alternatively, the fading out and fading in may beincluded as part of the skip filtering acting itself, with the start andstop positions being adjusted accordingly. The length of fade out andfade in may be set explicitly or use an appropriately determined defaultvalue. Incremental filtering actions need not be limited to a specificamount of change, such as normal to blank display, but rather should beinterpreted to include any given change, such as normal to one-halfintensity, over some interval. Furthermore, incremental filteringactions may be used to adjust virtually any characteristic of multimediacontent.

Where multimedia content includes visual information being presented toa viewer, it is possible that unsuitable material may be localized toonly a certain physical area of the scene as it is presented. In thesecases one or more navigation objects with reframe filtering actions maybe appropriate. The entire scene need not be skipped because the viewingframe may be positioned to avoid showing the unsuitable material and theremaining content may be enlarged to provide a full-size display. Bycontinually adjusting the framing and sizing of multimedia contentduring a scene, the unsuitable material is effectively cropped fromview.

Each reframe navigation object is capable of performing a number ofreframe/resize actions, including the ability to reframe and resize on aframe-by-frame basis. Therefore, the number of reframe navigationobjects used in cropping a particular scene depends on a variety offactors, including how the scene changes with time. A single navigationobject may be sufficient to filter a relatively static scene, whereasmore dynamic scenes will likely require multiple navigation objects. Forexample, one navigation object may be adequate to reframe a sceneshowing an essentially static, full-body, view of a person with a severeleg wound to a scene that includes only the person's head and torso.However, for more dynamic scenes, such as a scene where the person withthe severe leg wound is involved in a violent struggle or altercationwith another person, multiple reframe navigation objects may be requiredfor improved results.

Positions P4₁, P4₂, P4₃, P4₄, P4₅, P4₆, and P4₇ are separated by theupdate interval. Those of skill in the art will recognize that a shorterupdate interval will allow for more precise filtering. For example, ifstart 491 were shortly after position P4₂, multimedia decoding andoutput would continue until position P4₃, showing nearly ¼ of themultimedia content that was to be filtered. With an update intervaloccurring ten times each second, only a minimal amount of multimediacontent that should be filtered (e.g., less than 1/10th of a second)will be displayed at the output device. As has been implied by thedescription of configuration identifier 499, it is reasonable to expectsome variability in consumer systems and the invention should not beinterpreted as requiring exact precision in filtering multimediacontent. Variations on the order of a few seconds may be tolerated andaccounted for by expanding the portion of content defined by anavigation object, although the variations will reduce the quality offiltering as perceived by a consumer because scenes may be terminatedprior to being completely displayed.

The differences enclosed in parentheses for server operation arerelatively minor and those of skill in the art will recognize that aconsumer and server may cooperate, each performing a portion of theprocessing that is needed. FIG. 3B provides an exemplary system whereprocessing is shared between a server system and a consumer system.Nevertheless, the following will describe the processing as it wouldoccur at a server system, similar to the one shown in FIG. 3C, but withonly the output device located at the consumer system.

At block 412, the server receives the DVD title identifier so that theproper navigation objects can be selected in block 414. The serverreceives a fee from the consumer system, in block 416, for allowing theconsumer system access to the navigation objects. The fee may be asubscription for a particular time period, a specific number ofaccesses, etc. The first navigation object for the DVD title identifiedat 412 is retrieved in block 422 and checked for a configuration matchin block 424. Because the configuration match is checked at the server,the consumer system supplies its configuration information oridentifier. As described above, receiving a content identifier (412),selecting navigation objects (414), receiving a fee (416), retrieving anavigation object (422), and determining whether the configurationidentifier matches the consumer system configuration (424) have beenenclosed within a dashed line to indicate that they are all examples ofacts that may occur within a step for the server system providing anobject store having navigation objects.

Decoding the multimedia content (432) may occur at either the consumersystem or the server system. However, sending decoded multimedia from aserver system to a consumer system requires substantial communicationbandwidth. At block 434, the multimedia content is transferred to theoutput device. The server system then queries (436) the client systemdecoder to update the position code. Alternatively, if the decodingoccurred at the server system, the position code may be updated (436)without making a request to the consumer system. The acts of decoding(432), transferring (434), and continuously updating or querying for theposition code (436) have been enclosed in a dashed line to indicate thatthey are examples of acts that are included within a step for the serversystem using a decoder to determine when multimedia content is within anavigation object (430).

The server system performing a step for filtering multimedia content(440) includes the acts of (i) comparing the updated position code tothe navigation object identified in block 422 to determine if theupdated position code lies within the navigation object, and (ii)activating or sending an filtering action (444) at the proper time.Decoding continues at block 432 for updated position codes that are notwithin the navigation object. Otherwise, the filtering action isactivated or sent (444) for updated position codes within the navigationobject. Activating occurs when the decoder is located at the consumersystem, but if the decoder is located at the consumer system, thefiltering action must be sent to the consumer system for processing. Thenext navigation object is retrieved at block 422 following activation ofthe filtering action, and processing continues as described above. Theanalysis of FIG. 4B will not be repeated for a server system because theserver operation is substantially identical to the description providedabove for a consumer system.

FIG. 5A illustrates a sample method for filtering audio content,possibly included with video content, according to the presentinvention. The steps for providing 510 and using 530, including the actsshown in processing blocks 512, 514, 516, 522, 524, 532, 534, and 536are virtually identical to the corresponding steps and acts describedwith reference to FIGS. 4A. Therefore, the description of FIG. 5A beginswith a step for filtering (540) multimedia content.

Decision block 542 determines if an updated or queried position code(536) is within the navigation object identified in blocks 522 and 524.If so, decision block 552 determines whether or not an filtering actionis active. For portions of multimedia content within a navigation objectwhere the filtering action is active or has been sent (in the case ofserver systems), decoding can continue at block 532. If the filteringaction is not active or has not been sent, block 544 activates or sendsthe filtering action and then continues decoding at block 532.

If decision block 542 determines that the updated or queried positioncode (536) is not within the navigation object, decision block 556determines whether or not an filtering action is active or has beensent. If no filtering action is active or has been sent, decodingcontinues at block 532. However, if an filtering action has beenactivated or sent and the updated position code is no longer within thenavigation object, block 546 activates or sends and end action andcontinues by identifying the next navigation object in blocks 522 and524.

In general, some filtering may be accomplished with one action, like thevideo action of FIG. 4B, while others require ongoing actions, like theaudio action of FIG. 5B. The mocked-up position codes and audionavigation object shown in FIG. 5B help explain the differences betweensingle action filtering of multimedia content and continuous or ongoingfiltering of multimedia content. Content positions 580 identify variouspositions, labeled P5₁, P5₂, P5₃, P5₄, P5₅, P5₆, and P5₇, that areassociated with the multimedia content. The navigation object portion590 of the content begins at start 591 (P5₂) and ends at stop 593 (P5₆).Mute 595 is the filtering action assigned to the navigation object and“F” word 597 is a text description of the navigation object portion 590of the multimedia content. Like configuration 499 of FIG. 4B,configuration 599 identifies the hardware and software configuration ofa consumer system to which the navigation object applies.

After the multimedia content is decoded at block 532 and transferred tothe output device at block 534, the position code is updated at block536. P5₁ corresponds to the updated position code. Because P5₁ is notwithin (542) the start position 591 and stop position 593 and nofiltering action is active or sent (556), more multimedia content isdecoded (532), transferred to the output device (534), and the positioncode is updated again (536).

The updated position code is now P5₂. P5₂ also marks the beginning ofthe navigation object portion 590 of the multimedia content defined bythe start and stop positions (591 and 593) of the navigation object, asdetermined in decision block 542. Because not action is active or sent,decision block 552 continues by activating or sending (544) thefiltering action assigned to the navigation object to mute audiocontent, and once again, content is decoded (532), transferred to theoutput device (534), and the position code is updated or queried (536).

Muting, in its most simple form, involves setting the volume level ofthe audio content to be inaudible. Therefore, a mute command may be sentto the output device without using the decoders. Alternatively, a mutecommand sent to the decoder may eliminate or suppress the audio content.Those of skill in the art will recognize that audio content may includeone or more channels and that muting may apply to one or more of thosechannels.

Now, the updated or queried position code (536) is P5₃. Decision block542 determines that the updated or queried position code (536) is withinthe navigation object, but an filtering action is active or has beensent (552), so block 532 decodes content, block 524 transfers content tothe output device, and block 536 updates or queries the position code.The audio content continues to be decoded and the muting actioncontinues to be activated.

At this point, the updated or queried position code (536) is P5₄. Nowdecision block 542 determines that the updated or queried position code(536) is no longer within the navigation object, but decision block 556indicates that the muting action is active or has been sent. Block 546activates or sends and end action to end the muting of the audio contentand the decoding continues at block 532. For DVD content, the resultwould be that the video content is played at the output device, but theportion of the audio content containing an obscenity, as defined by thenavigation object, is filtered out and not played at the output device.

Abruptly altering multimedia content may lead to noticeable artifactsthat detract from the experience intended by the multimedia content. Todiminish the potential for artifacts, filtering actions may beincrementally activated or separate incremental filtering action may beused. For example, a fade out (e.g., normal to no volume) filteringaction may precede a mute filtering action and a fade in (e.g., novolume to normal) filtering action may follow a mute filtering action.Alternatively, the fading out and fading in may be included as part ofthe mute filtering acting itself, with the start and stop positionsbeing adjusted accordingly. The length of fade out and fade in may beset explicitly or use an appropriately determined default value.Incremental filtering actions are not limited to any particular amountof change, such as normal to no volume, but rather should be interpretedto include any change, such as normal to one-half volume, over someinterval. Furthermore, incremental filtering actions may adjustvirtually any characteristic of multimedia content.

Like the method shown in FIG. 4A, the method shown in FIG. 5A may bepracticed at both client systems and server system. However, the methodswill not be described in a server system because the distinctionsbetween a consumer system and a server system have been adequatelyidentified in the description of FIGS. 4A and 4B.

FIG. 6 is a flowchart illustrating a method used in customizing thefiltering of multimedia content. At block 610, a password is received toauthorize disabling the navigation objects. A representation of thenavigation objects is displayed on or sent to (for server systems) theconsumer system in block 620. Next, as shown in block 630, a response isreceived that identifies any navigation objects to disable and, in block640, the identified navigation objects are disabled.

Navigation objects may be disabled by including an indication within thenavigation objects that they should not be part of the filteringprocess. The act of retrieving navigation objects, as shown in blocks422 and 522 of FIGS. 4A and 5A, may ignore navigation objects that havebeen marked as disabled so they are not retrieved. Alternatively, aseparate act could be performed to eliminate disabled navigation objectsfrom being used in filtering multimedia content.

The acts of receiving a password (610), displaying or sending arepresentation of the navigation objects (620), receiving a responseidentifying navigation objects to disable (630), and disablingnavigation objects (640), have been enclosed in a dashed line toindicate that they are examples of acts that are included within a stepfor deactivating navigation objects (660). As with the exemplary methodspreviously described, deactivating navigation objects may be practicedin either a consumer system or a server system.

FIG. 7 illustrates an exemplary method for assisting a consumer systemin automatically identifying and filtering portions of multimediacontent. A step for providing an object store (710) includes the acts ofcreating navigation objects (712), creating an object store (714), andplacing the navigation objects in the object store 716. A step forproviding navigation objects (720) follows. The step for providingnavigation objects (720) includes the acts of receiving a contentidentifier (722), such as a title, and receiving a request for thecorresponding navigation objects (726).

In the step for charging (730) for access to the navigation objects,block 732 identifies the act of determining if a user has an establishedaccount. For example, if a user is a current subscriber then no chargeoccurs. Alternatively, the charge could be taken from a prepaid accountwithout prompting the user (not shown). If no established accountexists, the user is prompted for the fee, such as entering a credit cardnumber or some other form of electronic currency, at block 734 and thefee is received at block 736. A step for providing navigation objects(740) follows that includes the act of retrieving the navigation objects(742) and sending the navigation objects to the consumer system (744).The act of downloading free navigation software that makes use of thenavigation objects also may be included an inducement for the fee-basedservice of accessing navigation objects.

The present invention may be embodied in other specific forms withoutdeparting from its spirit or essential characteristics. The describedembodiments are to be considered in all respects only as illustrativeand not restrictive. The scope of the invention is, therefore, indicatedby the appended claims rather than by the foregoing description. Allchanges which come within the meaning and range of equivalency of theclaims are to be embraced within their scope.

1. A method of suppressing multimedia content comprising: one or moretangible computer executable instructions comprising: obtaining at leastone navigation object associated with a particular multimedia contentpresentation, the navigation object including a start indicatorassociated with a first position of the multimedia content presentation,at least one associated filtering action and at least one contentidentifier; determining whether the at least one navigation object isactivated, the activation being a function of the at least one contentidentifier; comparing the start indicator of the navigation object witha position of the multimedia content presentation during presentation ofthe multimedia content; suppressing the multimedia content inconformance with the filtering action when the first position of themultimedia content matches the start indicator and the navigation objectis activated.
 2. The method of claim 1 wherein the navigation objectfurther includes an end indicator associated with a second position ofthe multimedia content presentation.
 3. The method of claim 2 whereinthe filtering action is a skip, and wherein the suppressing operationcomprises skipping the multimedia content between the first position andthe second position.
 4. The method of claim 3 wherein the skippingaction involves directing read back from a physical location of a memorylocation corresponding with the end indicator.
 5. The method of claim 2wherein the filtering action is a mute, and wherein the suppressingoperation comprises muting an audio portion of the multimedia contentpresentation between the first position and the second position.
 6. Themethod of claim 1 further comprising the operation of receiving aselection to activate the navigation object based on the contentidentifier.
 7. The method of claim 1 further comprising the operation ofreceiving a selection to deactivate the navigation object based on thecontent identifier.
 8. The method of claim 1 wherein the multimediacontent presentation is an MPEG encoded movie.
 9. The method of claim 1wherein the position of the multimedia content presentation duringpresentation of the multimedia content includes a time code.
 10. Themethod of claim 1 wherein the navigation object is separate from themultimedia content presentation.
 11. The method of claim 16 wherein thenavigation object and the multimedia content presentation are providedon the same removable memory media.
 12. The method of claim 1 whereinthe operation of obtaining at least one navigation object comprisesobtaining a plurality of navigation objects associated with a particularmultimedia content presentation, each navigation object including astart indicator associated with a first position of the multimediacontent presentation, at least one associated filtering action and atleast one content identifier.
 13. The method of claim 12 wherein atleast two of the plurality of navigation objects has a common contentidentifier.
 14. The method of claim 13 further comprising the operationof receiving a selection to activate the at least two navigation objectsbased on the common content identifier.
 15. The method of claim 1wherein the start indicator corresponds with a physical position of aremovable memory media including the multimedia content presentation.16. The method of claim 15 wherein the removable memory media is a DVD.17. A computer readable media including the one or more tangiblecomputer executable instructions conforming to the method of claim 1.18. The method of claim 1 further comprising the operation of obtainingthe particular multimedia content presentation from at least one of aDVD, a CD, a random access memory, a hard drive, a removable diskstorage medium, a tape storage medium, a wired communications link, anda wireless communications link.
 19. A method of suppressing multimediacontent comprising: one or more tangible computer executableinstructions comprising: obtaining at least one navigation objectassociated with a particular multimedia content presentation, thenavigation object including a start indicator associated with a firstposition of the multimedia content presentation, at least one associatedfiltering action and a multimedia content presentation identifier;identifying a multimedia content presentation and comparing themultimedia content presentation identifier with the identifiedmultimedia content presentation; comparing the start indicator of thenavigation object with a position of the multimedia content presentationduring presentation of the multimedia content; and suppressing themultimedia content in conformance with the filtering action when thefirst position of the multimedia content matches the start indicator.20. The method of claim 19 wherein the multimedia content identifier isa DVD movie title.
 21. The method of claim 20 further comprising:identifying a match between the DVD movie title and the multimediacontent presentation; and performing the operations of comparing thestart indicator and suppressing based on the match.
 22. The method ofclaim 9 further comprising: determining whether the at least onenavigation object is activated; and suppressing the multimedia contentin conformance with the filtering action when the first position of themultimedia content matches the start indicator and the navigation objectis activated.
 23. The method of claim 19 wherein the navigation objectfurther includes an end indicator associated with a second position ofthe multimedia content presentation.
 24. The method of claim 23 whereinthe filtering action is a skip, and wherein the suppressing operationcomprises skipping the multimedia content between the first position andthe second position.
 25. The method of claim 24 wherein the filteringaction involves directing read back from a physical location of a memorylocation corresponding with the end indicator.
 26. The method of claim23 wherein the filtering action is a mute, and wherein the suppressingoperation comprises muting an audio portion of the multimedia contentpresentation between the first position and the second position.
 27. Themethod of claim 19 wherein the navigation object includes at least onecontent identifier and further comprising the operation of receiving aselection to activate the navigation object based on the contentidentifier.
 28. The method of claim 19 wherein the navigation objectincludes at least one content identifier and further comprising theoperation of receiving a selection to deactivate the navigation objectbased on the content identifier.
 29. The method of claim 19 wherein themultimedia content presentation is an MPEG encoded movie.
 30. The methodof claim 19 wherein the position of the multimedia content presentationduring presentation of the multimedia content includes a time code. 31.The method of claim 19 wherein the navigation object is separate fromthe multimedia content presentation.
 32. The method of claim 19 whereinthe navigation object and the multimedia content presentation areprovided on the same removable memory media.
 33. The method of claim 19wherein the operation of obtaining at least one navigation comprisesobtaining a plurality of navigation objects associated with a particularmultimedia content presentation, each navigation object including astart indicator associated with a first position of the multimediacontent presentation, at least one associated filtering action and atleast one content identifier.
 34. The method of claim 33 wherein atleast two of the plurality of navigation objects has a common contentidentifier.
 35. The method of claim 34 further comprising the operationof receiving a selection to activate the at least two navigation objectsbased on the common content identifier.
 36. The method of claim 19wherein the start indicator corresponds with a physical position of aremovable memory media including the multimedia content presentation.37. The method of claim 36 wherein the removable memory media is a DVD.38. The method of claim 19 further comprising the operation of obtainingthe particular multimedia content presentation from at least one of aDVD, a CD, a random access memory, a hard drive, a removable diskstorage medium, a tape storage medium, a wired communications link, anda wireless communications link.
 39. A computer readable media includingthe one or more tangible computer executable instructions conforming tothe method of claim 19.